package model.cuota;

import org.joda.time.LocalDate;


/**
 * @author Lucas
 * Una cuota normal es cualquier cuota de un prestamo menos la 1era del mismo.
 * Se diferencia con la primer cuota de todo prestamo en el calculo de sus valores internos.
 */
public class CuotaNormal extends Cuota {

	private Cuota cuotaAnterior;
	
	public CuotaNormal(Cuota cuotaAnterior , double valorCuota , int numeroDeCuota , LocalDate vencimiento, double gastosMensuales, double TEM, double coeficienteSeguroDeVida) {
		super(valorCuota, numeroDeCuota, vencimiento, gastosMensuales, TEM, coeficienteSeguroDeVida);
		this.cuotaAnterior = cuotaAnterior;
		this.calcularValoresCuota();
	}

	/**
	 * Calcula el seguro que se expresa como:
	 * Saldo de deuda cuota anterior * coeficiente seguro
	 */
	@Override
	protected void calcularSeguro() {
		this.setSeguro(cuotaAnterior.getSaldoDeDeuda() * this.getCoeficienteSeguroVida());
	}

	/**
	 * Calcula el saldo de deuda que se expresa como:
	 * Saldo de deuda cuota anterior - amortizacion
	 */
	@Override
	protected void calcularSaldoDeDeuda() {
		this.setSaldoDeDeuda(cuotaAnterior.getSaldoDeDeuda() - this.getAmortizacion());
	}

	/**
	 * Calcula el interes que se expresa como:
	 * Saldo de deuda cuota anterior * TEM
	 */
	@Override
	protected void calcularInteres() {
		this.setInteres(cuotaAnterior.getSaldoDeDeuda() * this.getTEM());
	}

	
	
}
